Software applications are typically provided under a variety of different purchase and licensing arrangements. Under certain subscription-based licensing arrangements, a person purchases a subscription and then is entitled to use the software product during the subscription period. Once the subscription period ends or expires, the software is no longer usable by the subscription purchaser. The software itself may include logic or functionality such that, after the expiration of the subscription, the software is no longer usable. In such circumstances, the software may provide a notice that renewal of the subscription is necessary for continued use of the software. The purchaser may then renew the subscription. The software can identify that such renewal has occurred in various ways. For example, the purchaser may enter or otherwise provide a subscription or renewal number or otherwise allow the software to confirm that renewal has occurred by providing information about the renewal. After renewal of the subscription, the software again allows use of the software's functionality until the subscription period again lapses or otherwise has a negative status, such as, for example, suspended, etc.
Software providers have also used third-parties to facilitate the purchase of software subscriptions. For example, such a third-party may operate a website software store that allows a consumer to purchase or renew software or otherwise pay for software services. The third-party may also maintain billing account information for the subscription purchaser and otherwise manage information associated with the purchaser and the software subscribed to by the purchaser. However, existing techniques for managing software subscriptions generally do not adequately allow software providers to have access to information and otherwise manage subscriptions to the software that they provide. This is due to the fact that such managing of subscriptions can require accessing information that is available only to the third-party that performs the billing functions. Moreover, existing techniques for validating that software used on a device has not expired can excessively slow performance of the software because such validation may require that the software wait for confirmation from an overused or otherwise slow billing server. From the billing server's perspective, having to validate, control, or otherwise manage the use of the subscribed-to software can require an undesirable amount of communication and processing activities. Thus, existing techniques for validating that software used on a device has not expired can burden the servers involved in providing the billing transactions associated with the subscriptions. While it is desirable to separate billing functions from validating, controlling, or otherwise managing software use, existing systems have not separated such functions from billing generally because such functions require access to current information about the subscription that is available only to the billing servers.